008 便携版mysql安装配置
安装环境¶
- Windows 版本:Windows 10 专业版 64bit
- MySQL 版本:MySQL 5.7.29
Tip¶
在安装 MySQL 前请务必确认自己电脑的 net
指令是正常工作的。有些 Windows 系统会丢失 net
指令(环境变量缺失),解决方法请自行搜索一下。
配置过程¶
-
下载 MySQL Community Server 下载链接
-
选择合适自己操作系统的版本,通常使用 Windows (x86, 64-bit), ZIP Archive
-
点击 Download 后,会提示用户登陆 / 注册,可以在下方选择 “No thanks, just start my download.” 跳过登陆 / 注册步骤。
-
-
解压并“合理安放” MySQL Server
- 将下载好的
mysql-5.7.29-winx64.zip
解压,并将解压好的文件夹妥善放置(比如放置在 Program FIles 文件夹内)。 - 本教程中 MySQL 被放置在了
D:\
下
- 将下载好的
-
为 MySQL Server 配置环境变量
- 右击开始菜单按钮,选择“系统”选项。
- 在“系统”界面左侧,选择“高级系统设置”。
-
在打开的“系统属性”对话框中的“高级”选项卡页面的下方,选择“环境变量”。
-
在“用户变量”区块中,选择“新建”
- 输入变量值:
D:\mysql-5.7.29-winx64\bin
-
注册 MySQL 服务
- 右击开始菜单按钮,选择“命令提示符(管理员)”选项。
- 输入盘符 + “:” 指令,进入MySQL文件夹所在的磁盘(本教程是 D 盘)。再使用
cd
指令进入MySQL Server所在文件夹的bin
文件夹中。这一步非常重要,如果不在这个目录下,无法正确注册 MySQL 服务。
-
执行
mysqld -install
指令,注册 MySQL 服务。 -
执行完毕后,请不要退出“命令提示符”。
- 配置 my.ini
- 进入 MySQL 所在的文件夹 (本教程为
D:\mysql-5.7.29-winx64
) - 新建
my.ini
(千万不要使用记事本,用notpad++或者是sublime等都可以)- 在该文件中,
#
是注释标记。 - 我的配置文件如下
- 在该文件中,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | [client] port= 3306 socket= /tmp/mysql.sock default-character-set= utf8 [mysqld] port= 3306 # 设置mysql的安装目录 basedir= "D:\mysql-5.7.29-winx64" # 设置mysql数据库的数据的存放目录 datadir= "D:\mysql-5.7.29-winx64\data" # tmpdir= "C:\Apps\mysql\tempData" # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB socket = /tmp/mysql.sock # 设置mysql服务器的字符集 #default-character-set=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集 #character-set-server=utf8 # mysql服务器支持的最大并发连接数(用户数)。但总会预留其中的一个连接给管理员使用超级权限登录,即使连接数目达到最大限制。如果设置得过小而用户比较多,会经常出现“Too many connections”错误。 max_connections=100 # 查询缓存大小,用于缓存SELECT查询结果。如果有许多返回相同查询结果的SELECT查询,并且很少改变表,可以设置query_cache_size大于0,可以极大改善查询效率。而如果表数据频繁变化,就不要使用这个,会适得其反 query_cache_size=0 # 这个参数在5.1.3之后的版本中叫做table_open_cache,用于设置table高速缓存的数量。由于每个客户端连接都会至少访问一个表,因此此参数的值与 max_connections有关。当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。在执行缓存操作之前,table_cache用于限制缓存表的最大数目:如果当前已经缓存的表未达到table_cache,则会将新表添加进来;若已经达到此值,MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。 #table_cache=256 # 内存中的每个临时表允许的最大大小。如果临时表大小超过该值,临时表将自动转为基于磁盘的表(Disk Based Table)。 tmp_table_size=34M # 缓存的最大线程数。当客户端连接断开时,如果客户端总连接数小于该值,则处理客户端任务的线程放回缓存。在高并发情况下,如果该值设置得太小,就会有很多线程频繁创建,线程创建的开销会变大,查询效率也会下降。一般来说如果在应用端有良好的多线程处理,这个参数对性能不会有太大的提高。 thread_cache_size=8 skip-grant-tables #------------------------------MyISAM相关参数 begin-------------------------------- # mysql重建索引时允许使用的临时文件最大大小 myisam_max_sort_file_size=100G myisam_sort_buffer_size=68M # Key Buffer大小,用于缓存MyISAM表的索引块。决定数据库索引处理的速度(尤其是索引读) key_buffer_size=54M # 用于对MyISAM表全表扫描时使用的缓冲区大小。针对每个线程进行分配(前提是进行了全表扫描)。进行排序查询时,MySql会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要排序大量数据,可适当调高该值。但MySql会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。 read_buffer_size=64K read_rnd_buffer_size=256K # connection级参数(为每个线程配置),500个线程将消耗500*256K的sort_buffer_size。 sort_buffer_size=256K # InnoDB用于存储元数据信息的内存池大小,一般不需修改 # 事务相关参数,如果值为1,则InnoDB在每次commit都会将事务日志写入磁盘(磁盘IO消耗较大),这样保证了完全的ACID特性。而如果设置为0,则表示事务日志写入内存log和内存log写入磁盘的频率都为1次/秒。如果设为2则表示事务日志在每次commit都写入内存log,但内存log写入磁盘的频率为1次/秒。 innodb_flush_log_at_trx_commit =1 # InnoDB日志数据缓冲大小,如果缓冲满了,就会将缓冲中的日志数据写入磁盘(flush)。由于一般至少都1秒钟会写一次磁盘,所以没必要设置过大,即使是长事务。 innodb_log_buffer_size=2M # InnoDB使用缓冲池来缓存索引和行数据。该值设置的越大,则磁盘IO越少。一般将该值设为物理内存的80%。 innodb_buffer_pool_size=105M # 每一个InnoDB事务日志的大小。一般设为innodb_buffer_pool_size的25%到100% innodb_log_file_size=53M # InnoDB内核最大并发线程数 innodb_thread_concurrency=9 #-------------------------------# InnoDB相关参数 end ------------------------------- |
- 切记不要手动创建 data 文件夹!
- 在刚才的“命令提示符”中,执行
mysqld --initialize
(可能会假死,等一分钟手动关闭就好)。 -
开启 MySQL Server
-
在“命令提示符”中执行
net start mysql
,开启 MySQL Server。
-
-
配置 MySQL root 账户。
- 在“命令提示符”中,执行
net stop mysql
关闭 MySQL Server。 -
再执行
mysqld --skip-grant-tables
开启无密码的 MySQL Server。 -
打开一个新的“命令提示符”,执行
mysql -u root
登陆 MySQL Server。 - 执行
flush privileges;
刷新权限。 - 执行
grant all privileges on *.* to 'root'@'localhost' identified by '你想设置的密码' with grant option;
。 - 执行
flush privileges;
刷新新的 root 用户密码。 -
执行
exit
退出 MySQL。 -
在任务管理器下手动结束
mysqld.exe
。 -
在“命令提示符”下执行
net start mysql
重新开启MySQL Server,再次使用mysql -u root -p 你设置的密码
即可安全登陆 MySQL。
- 在“命令提示符”中,执行
本教程中所有的“命令提示符”,一定要运行在 管理员模式下,否则会出现“拒绝访问”的问题。